/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package appvideo.logica;

import java.sql.SQLException;
import java.util.Date;
import appvideo.persistencia.PersistenciaPromocion;
import java.util.List;

/**
 *
 * @author JAVA
 */
public class PromocionesGenero extends Promociones {
    private String nombreGenero; //Nombre del Género al que se aplicará el descuento
    private double descuento; //Porcentaje*100 que se aplicará

    public PromocionesGenero(String nombre, Date fechaInicio, Date fechaFinal, boolean activa, String nombreGenero, double descuento, String tipo) {
        super(nombre, fechaInicio, fechaFinal, activa, tipo);
        this.nombreGenero = nombreGenero;
        this.descuento = descuento;
    }
    
    
    public PromocionesGenero(int id, String nombre, Date fechaInicio, Date fechaFinal, boolean activa, String nombreGenero, double descuento, String tipo) {
        super(id, nombre, fechaInicio, fechaFinal, activa, tipo);
        this.nombreGenero = nombreGenero;
        this.descuento = descuento;
    }

    public PromocionesGenero() {
    }
        
    
    public double getDescuento() {
        return descuento;
    }

    public void setDescuento(double descuento) {
        this.descuento = descuento;
    }

    public String getNombreGenero() {
        return nombreGenero;
    }

    public void setNombreGenero(String nombreGenero) {
        this.nombreGenero = nombreGenero;
    }

    @Override
    public double damePrecio(List<ProductoAlquilado> pA, Socio s) {
        double precio=0.00; //Precio total          
        Tarifa t;
        
        for (ProductoAlquilado paL : pA) {            
            Producto p = paL.getProducto();
            if(p.getGenero().equals(this.getNombreGenero())){
                t = p.getTarifa();
                precio = precio + (t.getPrecio() - ((this.descuento/100)*t.getPrecio())); 
            }else{
                t = p.getTarifa();
                precio = precio + t.getPrecio();
            }                       
        }                                          
        return precio;                                    
    }

    @Override
    public void insertaPromocion() throws SQLException {
        PersistenciaPromocion.insertaNuevoGenero(this);
    }

    @Override
    public void visualizaPromocion() throws SQLException {
        //throw new UnsupportedOperationException("Not supported yet.");
    }
    
    @Override
    public List<Promociones> visualizarPromociones(String filtro) {
        return PersistenciaPromocion.getPromocioness(this, filtro);
    }    

    @Override
    public void modificaPromocion() throws SQLException {
        PersistenciaPromocion.modificaGenero(this);
    }

    @Override
    public String toString() {
        return super.getId()+"\tTipo:" + super.getTipo() + "\tNombre:" + super.getNombre() + "\t\tGénero:" + nombreGenero + "\tDesc %=" + descuento + "";
    }

    @Override
    public List<Promociones> visualizarPromocionesActivas() {
        return PersistenciaPromocion.getPromocionesActivas(this);
    }
    
   public static PromocionesGenero buscaPromocion(String cadena) {
        return (PromocionesGenero)PersistenciaPromocion.buscaPromociones(cadena, new PromocionesGenero());
    }          
    
}
